package com.cgmnx.admin.service.rbac;

import com.cgmnx.admin.common.bean.Limiter;
import com.cgmnx.admin.common.enums.ValidEnumType;
import com.cgmnx.admin.dao.entity.rbac.RoleEntity;

import java.util.List;

/**
 * 角色管理
 */
public interface RoleService {

    /**
     * 保存角色
     *
     * @param entity
     * @return
     */
    int save(RoleEntity entity);

    /**
     * @param entity
     * @return
     */
    List<RoleEntity> query(RoleEntity entity);

    /**
     * @param id
     * @return
     */
    RoleEntity queryById(Integer id);

    /**
     * 根据角色
     *
     * @param entity
     * @return
     */
    int update(RoleEntity entity);

    /**
     * 依据角色ID 删除指定ROLE数据
     *
     * @param idList 角色ID
     * @param type   角色ID
     */
    void updateStatus(List<Integer> idList, ValidEnumType type);

    /**
     * 依据条件分页查询角色
     *
     * @return
     */
    List<RoleEntity> queryByNameAndValid(String name, ValidEnumType type);

    List<RoleEntity> queryPage(String name, ValidEnumType type, Limiter limiter);

    Integer count(String name, ValidEnumType type);

    List<RoleEntity> queryAll();

    List<RoleEntity> queryByUserIdList(List<String> userIdList, ValidEnumType valid);

}
